<template>
	<view class="viewport">
		<view class="logo">
			<image src="https://pcapi-xiaotuxian-front-devtest.itheima.net/miniapp/images/logo_icon.png"></image>
		</view>
		<view class="login">
			<button class="wxq-btn loginWx" @click="onLogin">一键登录</button>

		</view>
	</view>
</template>

<script>
	export default {
		data() {
			return {
				code: '',
			};
		},
		onLoad: function() {

		},
		methods: {
			async onLogin() {

				let userInfo = this.getUserInfo()

			},

			/**
			 * 封装用户信息获取方法
			 * 先检查授权状态，未授权则引导授权，已授权则获取最新信息
			 * @param {string} desc - 授权用途说明（微信要求必填）
			 * @returns {Promise<Object>} 用户信息对象或错误信息
			 */
			async getUserInfo(desc = '用于完善个人资料') {
				try {
					// 1. 检查用户当前授权状态
					const settingRes = await uni.getSetting();

					// 2. 如果未授权用户信息，提示用户授权
					if (!settingRes.authSetting['scope.userInfo']) {
						// 显示授权提示（可选，增强用户体验）
						uni.showModal({
							title: '授权提示',
							content: '需要获取您的用户信息以提供更好的服务',
							showCancel: false,
							confirmText: '知道了'
						});
					}

					// 3. 调用 getUserProfile 获取用户信息（无论是否已授权，都需要用户确认）
					const userProfileRes = await uni.getUserProfile({
						desc
					});

					// 4. 返回成功结果
					return {
						success: true,
						data: userProfileRes.userInfo,
						message: '获取用户信息成功'
					};

				} catch (error) {
					// 5. 处理错误情况（用户取消授权、接口调用失败等）
					let errorMessage = '获取用户信息失败';

					// 区分用户取消授权和其他错误
					if (error.errMsg && error.errMsg.includes('cancel')) {
						errorMessage = '您取消了授权，部分功能可能无法使用';
					}

					return {
						success: false,
						data: null,
						message: errorMessage,
						errMsg: error.errMsg || ''
					};
				}
			}

		},
	}
</script>

<style lang="scss">

</style>